#include <stdlib.h>
#include <stdio.h>
#include <SDL.h>
#include <SDL_image.h>
#include <SDL_ttf.h>
#include <time.h>
#include <fmod.h>

long Menu(SDL_Surface* ecran)
{
    long choix=0,continuer=1;
    char ecrire[50];

    TTF_Init();

    FSOUND_Init(44100, 32, 0);
    FSOUND_SetOutput(FSOUND_OUTPUT_DSOUND);
    FSOUND_SetDriver(0);
    FSOUND_STREAM *music,*change;

    SDL_Surface *menu = NULL, *choisisseur = NULL ,*texte;
    SDL_Rect positionMenu, positionChoisisseur, positionTexte;

    positionMenu.x = 0;
    positionMenu.y = 0;
    positionChoisisseur.x = 80;
    positionChoisisseur.y = 117;
    SDL_EnableKeyRepeat(100,100);

    TTF_Font *police = NULL;

    SDL_Color couleurNoire = {0, 0, 0};
    police = TTF_OpenFont("data/autre/comic.ttf", 14);


    menu = IMG_Load("data/autre/menu.bmp");
    choisisseur = IMG_Load("data/autre/choisi.png");
    
    FMUSIC_MODULE *musique = NULL;
    musique = FMUSIC_LoadSong("data/sons/smwtitle.mid");
    
    FMUSIC_SetMasterVolume(musique, 100);
    
    FMUSIC_PlaySong(musique);
    FMUSIC_SetLooping(musique, 1);
    
    SDL_Event event;

    texte = TTF_RenderText_Solid(police,ecrire, couleurNoire);


    while (continuer)
    {
        SDL_BlitSurface(menu,NULL,ecran,&positionMenu);
        SDL_BlitSurface(choisisseur,NULL,ecran,&positionChoisisseur);


        SDL_FreeSurface(texte);
        positionTexte.x = 90;
        positionTexte.y = 110;
        sprintf(ecrire,"Nouveau jeu");
        texte = TTF_RenderText_Solid(police,ecrire, couleurNoire);
        SDL_BlitSurface(texte, NULL, ecran, &positionTexte);


        SDL_FreeSurface(texte);
        positionTexte.x = 90;
        positionTexte.y = 110+20;
        sprintf(ecrire,"Charger jeu");
        texte = TTF_RenderText_Solid(police,ecrire, couleurNoire);
        SDL_BlitSurface(texte, NULL, ecran, &positionTexte);


        SDL_FreeSurface(texte);
        positionTexte.x = 90;
        positionTexte.y = 110+20*2;
        sprintf(ecrire,"Quitter");
        texte = TTF_RenderText_Solid(police,ecrire, couleurNoire);
        SDL_BlitSurface(texte, NULL, ecran, &positionTexte);

        SDL_Flip(ecran);


        while(SDL_PollEvent(&event)) {

        switch(event.type)
        {
            case SDL_KEYDOWN :

                 switch(event.key.keysym.sym)
                 {

                     case SDLK_DOWN:
                     if(choix<2)
                     choix++,positionChoisisseur.y += 20,FSOUND_Stream_Stop(change),FSOUND_Stream_Play(1, change);
                     break;
                     case SDLK_UP:
                     if(choix>0)
                     choix--,positionChoisisseur.y -= 20,FSOUND_Stream_Stop(change),FSOUND_Stream_Play(1, change);
                     break;
                     case SDLK_RETURN:
                     continuer=0;
                     break;
                     case SDLK_ESCAPE:
                     continuer=0;
                     choix=2;
                     break;
                 }

                 break;
        }

        }
    }
    FMUSIC_StopSong(musique);

    SDL_FreeSurface(menu);
    SDL_FreeSurface(choisisseur);
    SDL_FreeSurface(texte);
    
    FMUSIC_FreeSong(musique);
    
    return choix;

}

